package com.andova.toolkit.util;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Build;

/**
 * Created by Administrator on 2017-12-07.
 *
 * @author kzaxil
 * @since 1.0.1
 */
public class PermissionUtil {
    /**
     * 获取应用详情页面intent
     * <p>经测试发现，最好是在6.0之后（包括6.0）的系统上调用才可进入手动设置权限页面</p>
     * <p>在targetSdkVersion<23，而应用又运行在6.0以上的机型上时，直接调用
     * {@link android.support.v4.app.ActivityCompat#requestPermissions(Activity, String[], int)}是不起作用的，
     * 返回的{@link Activity#onRequestPermissionsResult(int, String[], int[])}的int数组为空（毕竟targetSdkVersion<23），
     * 这个时候，调用此方法，打开相应界面手动设置算是不错的选择</p>
     */
    public static Intent getAppDetailSettingIntent(Activity activity) {
        Intent localIntent = new Intent();
        localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        if (Build.VERSION.SDK_INT >= 9) {
            localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
            localIntent.setData(Uri.fromParts("package", activity.getPackageName(), null));
        } else {
            localIntent.setAction(Intent.ACTION_VIEW);
            localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
            localIntent.putExtra("com.android.settings.ApplicationPkgName", activity.getPackageName());
        }
        return localIntent;
    }
}
